<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>加密数据</title>
 </head>
 <body class="docs"><div id="layout">
  <div id="layout-content"><div id="function.mcrypt-generic" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mcrypt_generic</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.2, PHP 5, PHP 7 &lt; 7.2.0, PECL mcrypt &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">mcrypt_generic</span> &mdash; <span class="dc-title">加密数据</span></p>

 </div>
 <div id="function.mcrypt-generic-refsynopsisdiv">
  <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function has been
<em class="emphasis">DEPRECATED</em> as of PHP 7.1.0. Relying on this function
is highly discouraged.</p></div>
 </div>
 <div class="refsect1 description" id="refsect1-function.mcrypt-generic-description">
  <h3 class="title">说明</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>mcrypt_generic</strong></span>
    ( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$td</code></span>
   , <span class="methodparam"><span class="type">string</span> <code class="parameter">$data</code></span>
   ) : <span class="type">string</span></div>

  <p class="para rdfs-comment">
    本函数用来加密数据。
    传入数据长度必须是 n * 分组大小，否则需要后补 &quot;<em>\0</em>&quot;。
    本函数返回加密后的数据。
    注意，根据数据补齐不同，
    返回的数据可能比输入的数据长度有所增加。
  </p>
  <p class="para">
    如果你需要把加密后的数据保存到数据库，
    请确保保存 mcrypt_generic 返回的完整的字符串，
    否则将无法正确解密。
    如果原始数据有 10 个字符，分组大小为 8 
    （使用 <span class="function"><a href="mcrypt_enc_get_block_size.html" class="function">mcrypt_enc_get_block_size()</a></span> 获取分组大小），
    则数据库中至少需要 16 个字符来保存数据。
    请注意 <span class="function"><a href="mdecrypt_generic.html" class="function">mdecrypt_generic()</a></span> 函数返回的数据也会是 16 个字符。
    使用 rtrim($str, &quot;\0&quot;) 移除字符串末尾的 0 。
  </p>
  <p class="para">
    如果你在例如 MySQL 这样的数据库中存储数据，
    请注意 varchar 类型的字段会在插入数据时自动移除字符串末尾的“空格”。
    由于加密后的数据可能是以空格（ASCII 32）结尾，
    这种特性会导致数据损坏。
    请使用 tinyblob/tinytext（或 larger）字段来存储加密数据。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mcrypt-generic-parameters">
  <h3 class="title">参数</h3>
  <p class="para">
   <dl>

    
     <dt>
<code class="parameter">td</code></dt>

     <dd>

      <p class="para">
       加密描述符。
      </p>
      <p class="para">
        在调用本函数之前，
        请使用 <span class="function"><a href="mcrypt_generic_init.html" class="function">mcrypt_generic_init()</a></span> 函数初始化加密句柄。
        在加密完成之后，
        需要调用 <span class="function"><a href="mcrypt_generic_deinit.html" class="function">mcrypt_generic_deinit()</a></span> 函数进行必要的清理工作。
        请参见 <span class="function"><a href="mcrypt_module_open.html" class="function">mcrypt_module_open()</a></span> 。
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">data</code></dt>

     <dd>

      <p class="para">
       要加密的数据。
      </p>
     </dd>

    
   </dl>

  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mcrypt-generic-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="para">
   返回加密后的数据。
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.mcrypt-generic-seealso">
  <h3 class="title">参见</h3>
  <p class="para">
   <ul class="simplelist">
    <li class="member"><span class="function"><a href="mdecrypt_generic.html" class="function" rel="rdfs-seeAlso">mdecrypt_generic()</a> - 解密数据</span></li>
    <li class="member"><span class="function"><a href="mcrypt_generic_init.html" class="function" rel="rdfs-seeAlso">mcrypt_generic_init()</a> - 初始化加密所需的缓冲区</span></li>
    <li class="member"><span class="function"><a href="mcrypt_generic_deinit.html" class="function" rel="rdfs-seeAlso">mcrypt_generic_deinit()</a> - 对加密模块进行清理工作</span></li>
   </ul>
  </p>
 </div>


</div></div></div></body></html>